Searching by keywords is well known in the field of database searching. For example, when using an Internet search engine, a user typically enters one or more keywords as a search terms, such that the search results will include database content associated with the keywords. Often, the creator of the content will choose the keywords that will cause the content to be retrieved by a database search (e.g., by “tagging” the content with the keywords). For example, the creator of a review of a fancy Italian restaurant named Restaurant X may tag the review with keywords such as “Italian,” “restaurant,” and “fancy” such that the review is retrieved when a user enters one or more of those keywords in a query.
A drawback of this approach is that keywords may not capture all of the synonyms that users will use in practice when searching. For example, referring to the example above, the review of Restaurant X might not be retrieved if the user instead enters keywords such as “Italian” and “elegant” or “upscale.” These consequences are particularly significant in the field of advertising, where advertisers rely on users viewing their advertisements to generate sales. Moreover, conventional database search systems that search by keywords may have trouble determining the high level intent of what a user is seeking. For example, a search system may be unable to determine that the keywords “Restaurant X,” “Friday,” and “8:00 PM” indicate that the user wishes to make reservations for Friday at 8:00 PM at Restaurant X.
Thus, there is a need in the art for a method and apparatus for searching using an active ontology.